magiclanternfandomcom-20200223-history
500d Development Todo
General Notes This is where I'm going to get ideas out of my head to hopefully be a little more organized. There's just too many things to do, it's hard to figure out where to start. Some of these are just temporary changes for now (to get features like focus peaking / silent pics at least functional but not complete). For the most part, things will be working in live view but nothings guaranteed for video mode yet. -Coutts The short list *Finish finding VRAM values for all video/stills modes through examining dumps whilst different settings in the camera are selected *Find property for recording mode, this should fix small things like the amount of recordable time left on the SD card *Test HDMI cable and test dumps, find relevant VRAM buffers, etc *To be contined... VRAM Related Disable silent pics / focus peaking in movie mode *PROP_VIDEO_MODE not confirmed yet, not sure if present on 500d or not (can't see it changing in prop_spy). *Haven't confirmed which buffers work in which recording modes. Just need time to test/confirm. *Possible temporary fix: if(shooting_mode SHOOTMODE_MOVIE) bmp_printf( FONT_MED, 0, 450, "Movie Mode Not Supported Yet" ); Use LV buffer for focus peaking / silent pics in LV mode *Focus peaking is offset when one of the HD buffers (0x46000080, 0x48000080, 0x06000080, 0x08000080) are used (it's offset vertically, it's too low. aspect ratio is different from LV buffers). *HD buffers mentioned above are only present in recording mode (never present in LV or play mode). (This is techincally done as of now, but not released yet. It will be done for v1.6 release). Find LV buffer(s) for x5 and x10 zoom mdoes in Lv for hi-res silent pics *Edit Zebra.c, lines 853-936: dump_big_seg(0, "B:/0.bin"); dump_big_seg(0, "B:/0_1.bin"); dump_big_seg(1, "B:/1.bin"); dump_big_seg(1, "B:/1_1.bin"); dump_big_seg(4, "B:/4.bin"); dump_big_seg(4, "B:/4_1.bin"); *Should give you the dumps you need to follow this guide: 550d VRAM Step-by-step-example Try to find more HD buffers I've tested the known buffer addresses from the 500d VRAM page. Here are the results (with what works and what doesn't): VRAM Findings. A few known sizes. The goal is to try to find the biggest buffer possible to use for silent pics (for higher resolution pictures). So far the biggest is 1576x1024 but it's only present in 1080p video mode, unfortunately. *720x424, 1440 pitch - LV buffers (0x41B07800 / 0x43738800 / 0x43B48800) *928x616, 1856 pitch - HD buffers (0x46000080, 0x48000080, 0x06000080, 0x08000080). Present in recording modes but not LV, not confirmed while recording. *1576x1024, 3152 pitch - present in 1080p video mode (not confirmed while recording yet) Make motion detection faster It seems slow now, maybe the buffer it's using is just updating at a slower fps? I haven't looked into it yet. * Figure out what buffer is being used. * Maybe using the DMA pointer will be faster? * Some threshold setting somewhere that can be changed? (haven't looked yet). * Files that are probably worth looking in: shoot.c & zebra.c??? Fix LV shooting info display (bottom display in LV) * It only displays when the menu is up (while in LV of course). * Files to look through?? shoot.c & lens.c ML menu flickering excessively in LV * Check what events are happening with event spy * Look at events 0x1000094 & 0x1000075 again, return 0 or 1? (can't remember how it is now). * Try to find a way to block canon from metering again, i think that's what those 2 events are related to. * Files to check: menu.c & gui.c (possibly). Fix slit-scan silent pics * shoot.c line #855 * Use DMA pointer / get_yuv422_vram() from zebra.c? * Not sure about CACHEABLE/UNCACHEABLE, as it's being used at line 855 ^ Check/verify bmp_vram() * line 38 in bmp.h * check/verify struct bmp_vram_info in vram.h. * Files to check: bmp.c, vram.h, bmp.h Verify "recording" variable * line 2650 in zebra.c construction :)